package com.lingyu.jsjx.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.web.domain.BaseEntity;

import java.util.List;

/**
 * 督导评价对象 jsjx_supervisor_evaluation
 * 
 * @author ruoyi
 * @date 2025-08-08
 */
@Data
@TableName("jsjx_supervisor_evaluation")
public class SupervisorEvaluation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 评价记录ID */
    @TableId(type = IdType.AUTO, value = "supervisor_eval_id")
    private Long supervisorEvalId;

    /** 教师姓名id */
    @Excel(name = "教师姓名id")
    private Long teacherId;

    /** 教师姓名name */
    @Excel(name = "教师姓名name")
    private String teacherName;

    /** 课程名称 */
    @Excel(name = "课程名称")
    private String courseName;

    /** 授课班级（关联班级表） */
    private Long clazzId;

    @Excel(name = "授课班级", readConverterExp = "关联班级表")
    private String clazzName;

    /** 督导日期及节次（如：2025-06-17 第3-4节） */
    @Excel(name = "督导日期及节次", readConverterExp = "如=：2025-06-17,第=3-4节")
    private String evaluationDate;

    /** 督导专家身份 */
    @Excel(name = "督导专家身份")
    private String evaluatorIdentity;

    /** 教学文件规范性评分（1-10分） */
    @Excel(name = "教学文件规范性评分", readConverterExp = "1=-10分")
    private Long documentStandard;

    /** 专业技能匹配度评分（1-10分） */
    @Excel(name = "专业技能匹配度评分", readConverterExp = "1=-10分")
    private Long skillMatch;

    /** 实训教学占比评分（1-10分） */
    @Excel(name = "实训教学占比评分", readConverterExp = "1=-10分")
    private Long practiceRatio;

    /** 信息化教学应用评分（1-10分） */
    @Excel(name = "信息化教学应用评分", readConverterExp = "1=-10分")
    private Long infoTechnology;

    /** 师德师风表现评分（1-10分） */
    @Excel(name = "师德师风表现评分", readConverterExp = "1=-10分")
    private Long teacherEthics;

    /** 课堂管理效能评分（1-10分） */
    @Excel(name = "课堂管理效能评分", readConverterExp = "1=-10分")
    private Long classroomManagement;

    /** 教学评价闭环评分（1-10分） */
    @Excel(name = "教学评价闭环评分", readConverterExp = "1=-10分")
    private Long evaluationLoop;

    /** 技能竞赛指导评分（1-10分） */
    @Excel(name = "技能竞赛指导评分", readConverterExp = "1=-10分")
    private Long competitionGuidance;

    /** 产教融合衔接评分（1-10分） */
    @Excel(name = "产教融合衔接评分", readConverterExp = "1=-10分")
    private Long industryEducation;

    /** 教学创新实践评分（1-10分） */
    @Excel(name = "教学创新实践评分", readConverterExp = "1=-10分")
    private Long teachingInnovation;

    /** 督导综合评分（自动计算） */
    @Excel(name = "督导综合评分", readConverterExp = "自=动计算")
    private Long totalScore;

    /** 督导人签名附件路径 */
    @Excel(name = "督导人签名附件路径")
    private String signatureFileId;

    /** 典型亮点记录 */
    @Excel(name = "典型亮点记录")
    private String highlights;

    /** 问题整改建议 */
    @Excel(name = "问题整改建议")
    private String suggestions;

    @TableField(exist = false)
    private List<FileInfo> signatureFileList;
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("supervisorEvalId", getSupervisorEvalId())
            .append("teacherId", getTeacherId())
            .append("teacherName", getTeacherName())
            .append("courseName", getCourseName())
            .append("classId", getClazzId())
            .append("className", getClazzName())
            .append("evaluationDate", getEvaluationDate())
            .append("evaluatorIdentity", getEvaluatorIdentity())
            .append("documentStandard", getDocumentStandard())
            .append("skillMatch", getSkillMatch())
            .append("practiceRatio", getPracticeRatio())
            .append("infoTechnology", getInfoTechnology())
            .append("teacherEthics", getTeacherEthics())
            .append("classroomManagement", getClassroomManagement())
            .append("evaluationLoop", getEvaluationLoop())
            .append("competitionGuidance", getCompetitionGuidance())
            .append("industryEducation", getIndustryEducation())
            .append("teachingInnovation", getTeachingInnovation())
            .append("totalScore", getTotalScore())
            .append("signatureFileId", getSignatureFileId())
            .append("highlights", getHighlights())
            .append("suggestions", getSuggestions())
            .append("createBy", getCreateBy())
            .append("createByName", getCreateByName())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateByName", getUpdateByName())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
